a11y: Update GtkProgressBar
authorMatthias Clasen <mclasen@redhat.com>
Fri, 17 Jul 2020 17:10:18 +0000 (13:10 -0400)
committerEmmanuele Bassi <ebassi@gnome.org>
Sun, 26 Jul 2020 19:31:15 +0000 (20:31 +0100)
Update state and properties as appropriate.

gtk/gtkprogressbar.c

index 1b71c9769b8a50378e271132eb862e375d42b4f1..1041e1185fbaa6b03c836fc7f0586de826f4babd 100644 (file)
@@ -643,6 +643,9 @@ gtk_progress_bar_act_mode_enter (GtkProgressBar *pbar)
   gboolean inverted;
 
   gtk_widget_add_css_class (pbar->progress_widget, GTK_STYLE_CLASS_PULSE);
+  gtk_accessible_update_state (GTK_ACCESSIBLE (pbar),
+                               GTK_ACCESSIBLE_STATE_BUSY, TRUE,
+                               -1);
 
   inverted = pbar->inverted;
   if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
@@ -680,6 +683,9 @@ gtk_progress_bar_act_mode_leave (GtkProgressBar *pbar)
     gtk_widget_remove_tick_callback (GTK_WIDGET (pbar), pbar->tick_id);
   pbar->tick_id = 0;
 
+  gtk_accessible_update_state (GTK_ACCESSIBLE (pbar),
+                               GTK_ACCESSIBLE_STATE_BUSY, FALSE,
+                               -1);
   gtk_widget_remove_css_class (pbar->progress_widget, GTK_STYLE_CLASS_PULSE);
   update_node_classes (pbar);
 }
@@ -730,6 +736,13 @@ gtk_progress_bar_set_fraction (GtkProgressBar *pbar,
   gtk_widget_queue_allocate (pbar->trough_widget);
   update_fraction_classes (pbar);
 
+  gtk_accessible_update_property (GTK_ACCESSIBLE (pbar),
+                                  GTK_ACCESSIBLE_PROPERTY_VALUE_MAX, 1.0,
+                                  GTK_ACCESSIBLE_PROPERTY_VALUE_MIN, 0.0,
+                                  GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, fraction,
+                                  -1);
+
+
   g_object_notify_by_pspec (G_OBJECT (pbar), progress_props[PROP_FRACTION]);
 }